using System;
using System.CodeDom.Compiler;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Runtime.Serialization;
namespace Microsoft.Phone.Controls.Maps.ConfigService
{
	[GeneratedCode("System.Runtime.Serialization", "4.0.0.0"), DebuggerStepThrough, DataContract(Name = "ResponseSummary", Namespace = "http://dev.virtualearth.net/webservices/v1/common")]
	internal class ResponseSummary : INotifyPropertyChanged
	{
		private AuthenticationResultCode AuthenticationResultCodeField;
		private string CopyrightField;
		private string FaultReasonField;
		private ResponseStatusCode StatusCodeField;
		private string TraceIdField;
		public event PropertyChangedEventHandler PropertyChanged
		{
			[MethodImpl(32)]
			add
			{
				this.PropertyChanged = (PropertyChangedEventHandler)Delegate.Combine(this.PropertyChanged, value);
			}
			[MethodImpl(32)]
			remove
			{
				this.PropertyChanged = (PropertyChangedEventHandler)Delegate.Remove(this.PropertyChanged, value);
			}
		}
		[DataMember]
		internal AuthenticationResultCode AuthenticationResultCode
		{
			get
			{
				return this.AuthenticationResultCodeField;
			}
			set
			{
				if (!this.AuthenticationResultCodeField.Equals(value))
				{
					this.AuthenticationResultCodeField = value;
					this.RaisePropertyChanged("AuthenticationResultCode");
				}
			}
		}
		[DataMember]
		internal string Copyright
		{
			get
			{
				return this.CopyrightField;
			}
			set
			{
				if (!object.ReferenceEquals(this.CopyrightField, value))
				{
					this.CopyrightField = value;
					this.RaisePropertyChanged("Copyright");
				}
			}
		}
		[DataMember]
		internal string FaultReason
		{
			get
			{
				return this.FaultReasonField;
			}
			set
			{
				if (!object.ReferenceEquals(this.FaultReasonField, value))
				{
					this.FaultReasonField = value;
					this.RaisePropertyChanged("FaultReason");
				}
			}
		}
		[DataMember]
		internal ResponseStatusCode StatusCode
		{
			get
			{
				return this.StatusCodeField;
			}
			set
			{
				if (!this.StatusCodeField.Equals(value))
				{
					this.StatusCodeField = value;
					this.RaisePropertyChanged("StatusCode");
				}
			}
		}
		[DataMember]
		internal string TraceId
		{
			get
			{
				return this.TraceIdField;
			}
			set
			{
				if (!object.ReferenceEquals(this.TraceIdField, value))
				{
					this.TraceIdField = value;
					this.RaisePropertyChanged("TraceId");
				}
			}
		}
		protected void RaisePropertyChanged(string propertyName)
		{
			PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
			if (propertyChanged != null)
			{
				propertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
			}
		}
	}
}
